//
// Copyright (C) [2024] Xingyun Integrated Circuit, Inc.
//
// GreenCode was a private technology asset of Xingyun Integrated Circuit， Inc （Confidential）
//  Author: Shawn.Tan
//  Date : 2025.10.28
//
//  History : Initial Version 2025.10.28
//
//
#ifndef Green_VariableParser_H
#define Green_VariableParser_H

#include <vector>

namespace Green {

  class VariableSet;
  class ArchInfo;

  /*!
    \class VariableParser
    \brief Parser class for variable files.

    VariableParser handles parsing of all variable files.
  */
  class VariableParser {
  public:
    /*!
      Constructor, pass in pointer to VariableSet object.
    */
    explicit VariableParser(std::vector<VariableSet* >& setsVector)
      : mVariableSets(setsVector)
    {
    }

    ~VariableParser() //!< Destructor.
    {
    }

    void Setup(const ArchInfo& archInfo);
  protected:
    std::vector<VariableSet *>& mVariableSets;

    friend class VariableFileParser;
  };

}

#endif
